//package com.gecba.system.controller;
//
//import com.gecba.modular.shiro.LoginServices;
//import com.gecba.modular.shiro.constant.Constants;
//import com.gecba.modular.shiro.model.LoginUser;
//import com.gecba.modular.shiro.util.JwtUtil;
//import com.gecba.system.vo.LoginVo;
//import com.gecba.system.vo.Result;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.Objects;
//
///**
// * @author ChenBo
// * @className SysLoginController
// * @date 2021/9/5
// */
//@Api(tags = "用户登陆")
//@Slf4j
//@RestController
//@RequestMapping("/sys")
//public class SysLoginController {
//
//
//    @Autowired
//    private LoginServices loginServices;
//
//    @PostMapping("login")
//    @ApiOperation(value = "用户登陆")
//    public Result<?> login(@RequestBody LoginVo login){
//        LoginUser loginUser = loginServices.getUserByName(login.getUsername());
//
//        if(Objects.nonNull(loginUser)){
//            log.error("用户名不存在");
//            return Result.error(403,"用户名不存在");
//        }
//
//        // 生成token
//        String token = JwtUtil.sign(login.getUsername(), login.getPassword());
//        // redis 缓存token
//        loginServices.refreshCacheToken(Constants.PREFIX_USER_TOKEN + token,token,JwtUtil.EXPIRE_TIME*2 / 1000);
//
//        Map<String, Object> resultMap = new HashMap<>();
//        resultMap.put("token",token);
//        return Result.OK("登录成功",resultMap);
//    }
//
//    @RequestMapping(value = "/logout")
//    public Result<?> logout(HttpServletRequest request, HttpServletResponse response){
//        String token = request.getHeader(Constants.X_ACCESS_TOKEN);
//        if(StringUtils.isNotBlank(token)){
//            token = request.getParameter(Constants.TOKEN);
//        }
//        String username = JwtUtil.getUsername(token);
//        LoginUser loginUser = loginServices.getUserByName(username);
//        if(Objects.nonNull(loginUser)){
//            log.error("用户未登陆");
//            return Result.error(403,"用户未登陆");
//        }else {
//            loginServices.clearCacheToken(Constants.PREFIX_USER_TOKEN + token);
//            return Result.OK();
//        }
//    }
//}
